From 7c9bb3c25a4bd63b58f5f0017a054110494a697f Mon Sep 17 00:00:00 2001 From: Stefano Stabellini Date: Wed, 13 Aug 2014 17:29:36 +0100 Subject: [PATCH] xen/arm: move setting GIC_IRQ_GUEST_QUEUED earlier It makes the code cleaner, especially with the following patches. Signed-off-by: Stefano Stabellini Acked-by: Julien Grall Acked-by: Ian Campbell --- xen/arch/arm/vgic.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c index ebfec8331c..9947e8c29a 100644 --- a/xen/arch/arm/vgic.c +++ b/xen/arch/arm/vgic.c @@ -321,13 +321,6 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq) spin_lock_irqsave(&v->arch.vgic.lock, flags); - if ( !list_empty(&n->inflight) ) - { - set_bit(GIC_IRQ_GUEST_QUEUED, &n->status); - gic_raise_inflight_irq(v, irq); - goto out; - } - /* vcpu offline */ if ( test_bit(_VPF_down, &v->pause_flags) ) { @@ -335,10 +328,17 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq) return; } + set_bit(GIC_IRQ_GUEST_QUEUED, &n->status); + + if ( !list_empty(&n->inflight) ) + { + gic_raise_inflight_irq(v, irq); + goto out; + } + priority = vgic_byte_read(rank->ipriority[REG_RANK_INDEX(8, irq, DABT_WORD)], 0, irq & 0x3); n->irq = irq; - set_bit(GIC_IRQ_GUEST_QUEUED, &n->status); n->priority = priority; /* the irq is enabled */ -- 2.30.2